package cn.tedu.csmall.stock.webapi.exception;

import cn.tedu.csmall.commons.pojo.stock.dto.StockReduceCountDTO;
import cn.tedu.csmall.commons.restful.JsonResult;
import cn.tedu.csmall.commons.restful.ResponseCode;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class StockBlockError {
    //自定义限流方法
    //1.访问修饰符是public
    //2.返回值类型必须和限流的控制层方法一致
    //3.方法名称要和@SentinelResource注解中的blockHandler一致
    //4.方法参数列表必须和被限流控制层方法一致，而且需要添加一个BlockException类型的参数
    public static JsonResult blockError(StockReduceCountDTO stockReduceCountDTO,
                                 BlockException e){
        //限流方法一般直接返回限流信息就可以了
        log.info("一个请求被限流了");
        return JsonResult.failed(ResponseCode.BAD_REQUEST,"服务器繁忙，请稍后重试~");
    }
}
